﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Controller;

namespace GUI
{
    public partial class P_Udlejning : P_DesignParentForm
    {
        public P_Udlejning()
        {
            InitializeComponent();
        }
        

        private void OpdaterButton_Click(object sender, EventArgs e)
        {
            if (!CheckIndtastninger())
                MessageBox.Show("Al data er ikke korrekt");
            else
            {
                PakOplysningerne();
                Vaerksted v = Vaerksted.GetInstance();
                if (v.Obog.AktivOrdre.Udlejning.StartKortKm > v.Obog.AktivOrdre.Udlejning.SlutKortKm)
                    MessageBox.Show("Start km standen kan ikke være større end slut km standen");
                else
                {
                    if (v.Obog.AktivOrdre.OpdaterUdlejning())
                        Close();
                    else
                        MessageBox.Show("Det lykkedes ikke at opdatere udlejningen, data er derfor ikke gemt");
                }




            }
        }

        private void Afslutbutton_Click(object sender, EventArgs e)
        {
            if (!CheckIndtastninger())
                MessageBox.Show("Al data er ikke korrekt");
            else
            {
                PakOplysningerne();
                Vaerksted v = Vaerksted.GetInstance();
                if (v.Obog.AktivOrdre.Udlejning.StartKortKm > v.Obog.AktivOrdre.Udlejning.SlutKortKm)
                    MessageBox.Show("Start km standen kan ikke være større end slut km standen");
                else
                {
                    v.Obog.AktivOrdre.Udlejning.Udlejet = true;
                    if (v.Obog.AktivOrdre.OpdaterUdlejning())
                        Close();
                    else
                        MessageBox.Show("Det lykkedes ikke at opdatere udlejningen, data er derfor ikke gemt");
                }
            }
        }

        private void Sletbutton_Click(object sender, EventArgs e)
        {
            DialogResult dl = MessageBox.Show("Er du sikker på du ønsker at slette denne udlejning?","Sletning af udlejning",MessageBoxButtons.YesNo);
            if (dl == DialogResult.Yes)
            {
                Vaerksted v = Vaerksted.GetInstance();
                if (v.Obog.AktivOrdre.SletUdlejning())
                    Close();
                else
                    MessageBox.Show("Det lykkedes ikke at slette udlejningen, noget gik galt");

            }
        }

        private void LukButton_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void P_Udlejning_Load(object sender, EventArgs e)
        {
            KundegroupBox.Enabled = false; ScootergroupBox.Enabled = false; PrisgroupBox.Enabled = false;
            HandlinggroupBox.Enabled = false;
            Vaerksted v = Vaerksted.GetInstance();
            v.Udlejning();
        }

        private void HentUdlejningbutton_Click(object sender, EventArgs e)
        {
            if (OnrtextBox.Text.Length > 0 && SBS.Valider.KunHelTal(OnrtextBox.Text))
            {
                Vaerksted v = Vaerksted.GetInstance();
                v.Obog.AktivOrdre.HentUdlejning(int.Parse(OnrtextBox.Text));
                if (v.Obog.AktivOrdre.Udlejning == null)
                {
                    MessageBox.Show("Der er ingen udlejning registreret på dette Ordre nr");
                }

                else
                {
                    bool afsluttet = v.Obog.AktivOrdre.Udlejning.Udlejet;
                    KundegroupBox.Enabled = !afsluttet; ScootergroupBox.Enabled = !afsluttet; PrisgroupBox.Enabled = !afsluttet;
                    HandlinggroupBox.Enabled = !afsluttet; OnrtextBox.Enabled = false;

                    KorekortNrTextBox.Text = v.Obog.AktivOrdre.Udlejning.KorekortNr;
                    if (v.Obog.AktivOrdre.Udlejning.UdlejetSlutDato < DateTime.Today)
                        SluTDatoUdlejning.Value = DateTime.Today;
                    else
                        SluTDatoUdlejning.Value = v.Obog.AktivOrdre.Udlejning.UdlejetSlutDato;
                    RegNrtextBox.Text = v.Obog.AktivOrdre.Udlejning.ScooterRegnr;
                    
                    StartKMtextBox.Text = v.Obog.AktivOrdre.Udlejning.StartKortKm.ToString();
                    SLUTKMtextBox.Text = v.Obog.AktivOrdre.Udlejning.SlutKortKm.ToString();
                    PrisPrKMtextBox.Text = v.Obog.AktivOrdre.Udlejning.PrisPrKm.ToString();
                    SelvrisikotextBox.Text = v.Obog.AktivOrdre.Udlejning.SelvRisikoBelob.ToString();
                }

            }

        }

        private bool CheckIndtastninger()
        {
            return (SBS.Valider.KunTalOgBogstaver(KorekortNrTextBox.Text) && SBS.Valider.KunHelTal(StartKMtextBox.Text) && SBS.Valider.KunHelTal(SLUTKMtextBox.Text) && SBS.Valider.KunDecimalTal(PrisPrKMtextBox.Text) && SBS.Valider.KunDecimalTal(SelvrisikotextBox.Text)) ;

        }

        private void PakOplysningerne()
        {
            Vaerksted v = Vaerksted.GetInstance();

            v.Obog.AktivOrdre.Udlejning.KorekortNr = KorekortNrTextBox.Text;
            v.Obog.AktivOrdre.Udlejning.StartKortKm = int.Parse(StartKMtextBox.Text);
            v.Obog.AktivOrdre.Udlejning.SlutKortKm = int.Parse(SLUTKMtextBox.Text);
            v.Obog.AktivOrdre.Udlejning.PrisPrKm = double.Parse(PrisPrKMtextBox.Text);
            v.Obog.AktivOrdre.Udlejning.SelvRisikoBelob = double.Parse(SelvrisikotextBox.Text);
            v.Obog.AktivOrdre.Udlejning.UdlejetSlutDato = SluTDatoUdlejning.Value;


        }

        

       

       
    }
}
